package org.fjsei.yewu.entity.fjtj;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.ObjectMapper;
import jakarta.persistence.*;
import lombok.*;
import lombok.experimental.SuperBuilder;
import org.fjsei.yewu.filter.Node;
import org.fjsei.yewu.pojo.SliceSyncRes;

import java.io.IOException;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.UUID;

/**接口获取后生成 中间表
 * */
//@SuperBuilder(toBuilder=true)
@Builder(toBuilder=true)
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
@Entity
@Table(name = "tb_pipl_unt")
public class PipeLineUnit implements SliceSyncRes, Node<UUID> {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "id")
    private UUID id;
    //对方的唯一性的ID字段：  @Column别名不能用
    public Long  pipelineUnitParaId;
    //不能用 @Column(name = "eqpId") 接口接收那一层无法利用这个定义别名的！
    public Long  eqpId;

    public String eqpCod;
    public String eqpCode; // 注意：这里有一个字段名与eqpCod相似，但值不同，请确认字段名的准确性
    public Float   length;
    public String designPress;
    public String boxName;
    public String pipelineLevel;
    public String safeLevel;
    public String sendMedium;
    public String startPlace;
    public String endPlace;
    public String layMode;
    //不能上 LocalDate
    public String  useTime; // 这里使用了String类型，因为null值可能代表任何类型，但在实际应用中应根据具体情况选择合适的类型

    public String workPress;
    public String designTemp;
    public String workTemp;
    public String pipelineDatumSign; // 同上，使用了String类型
    public String workMedium; // 同上，使用了String类型
    public String pipelineSpec;
    public String adiabaticMedium;
    public String adiabaticPly;
    public String rotAmount;
    public String embalmment;
    public String pipelineMedium;
    public String tryPress;
    public String hkNum;
    public String safeMecNum;
    public String designUnit;
    public String instUnit;
    public String embalmLevel;
    public String embalmHd;
    public LocalDate eqpFinmakeDate;

    public LocalDate eqpInstDate;
    public String nominalDia;
    public String nominalPly;
    public String memo; // 同上，使用了String类型
    public String ispReportCod; // 同上，使用了String类型
    public LocalDate nextIspDate;
    public String eqpUntRegcod;
    public Integer useSta;
    public Long ispId;
    public String ispConclu; // 同上，使用了String类型
    public String projName;
    public String dangerMedType; // 同上，使用了String类型
    public LocalDate ispDate; // 同上，使用了String类型
    public String incpIspReportCod;
    public LocalDate incpNextIspDate;
    public String incpIspConclu;
    public LocalDate incpIspDate;
    public String    eqpInnerId; // 同上，使用了String类型
    public String yearIspReportCod; // 同上，使用了String类型
    public LocalDate yearNextIspDate; // 同上，使用了String类型
    public String yearIspConclu; // 同上，使用了String类型
    public LocalDate yearIspDate; // 同上，使用了String类型
    public String unitAreaCod;
    public Integer eqpRegSta;
    public String eqpRegCod;
    public Long  regUntId; // 同上，使用了String类型
    public String regUserName; // 同上，使用了String类型
    public LocalDate regDate; // 同上，使用了String类型
    public Integer ispStatus;
    public LocalDate abnorIspDate2; // 同上，使用了String类型
    public String ispUntName; // 同上，使用了String类型
    public String incpUntName; // 同上，使用了String类型
    public String isKx;
    public String picNo;
//    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")     LocalDateTime
    public LocalDate    usestaChgTime; // 同上，使用了String类型

    public String useStaName;
    public String eqpRegStaName;
    public Long useUntId;
    public String useUntName;
    public String oidno;
    public String eqpName;
    public String eqpType;
    public String eqpSort;
    public String eqpSortName;
    public String eqpVart;
    public String subEqpVart; // 同上，使用了String类型，因为可能是null或者未提供具体类型
    public Long instUntId;
    public Long designUntId;
    public Long ispDeptId;
    public String vpipelineDia; // 注意：这里假设vpipelineDia是整型，但根据字段名可能是浮点型，请根据实际情况调整
    public String vpipelineMedium;
    public String vpipelineLevel;
    public String vlayMode; // 注意：这个字段与layMode重复，但值可能不同，请确认字段的准确性

    @Column(name = "fail")
    private String  fail;
}


/* @数据库修改脚本：    维护任务用到，反过来关联接口对方给的单位ID倒查表！
差别太大的。 中途别 DROP table public.tb_pipl_unt;   truncate  storesync；
create index tb_unt_mge__index_uunit on public.tb_unt_mge (uunit);
* */
